package com.hy.service;

import com.hy.utils.HY_Result;
import me.zhyd.oauth.model.AuthCallback;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 第三方登录 - 服务
 * @author HUAYI
 * @since 2020-12-27
 */
public interface LoginOauthService {

    /**
     * 授权请求地址
     * @param source
     * @return
     */
    @RequestMapping("/render/{source}")
    HY_Result renderAuth(@PathVariable String source);

    /**
     * 授权回调地址
     * @param source
     * @param callback
     * @return
     */
    @RequestMapping("/callback/{source}")
    HY_Result login(@PathVariable String source, AuthCallback callback);

    /**
     * 取消授权登录
     * @param source 平台
     * @param token  token
     * @return
     */
    @RequestMapping("/revoke/{source}/{token}")
    Object revokeAuth(@PathVariable String source, @PathVariable("token") String token);

    /**
     * 刷新Token
     * @param source
     * @param token
     * @return
     */
    @RequestMapping("/refresh/{source}/{token}")
    Object refreshAuth(@PathVariable String source, @PathVariable("token") String token);

}
